package cn.geekyspace.scanhive.pojo.entity;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

/**
 * 清洗数据
 */
@Getter
@Setter
@Builder
@ToString
@TableName("cleaning_data")
@NoArgsConstructor
@AllArgsConstructor
public class CleaningData {

    // -- 建表 SQL 记录
    //CREATE TABLE cleaning_data (
    //    id INT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID，自增',
    //    qr_code VARCHAR(255) NOT NULL COMMENT '二维码内容',不能为空
    //    cleaning_duration INT COMMENT '清洗时长，单位：秒',
    //    cleaning_temperature DECIMAL(5, 2) COMMENT '清洗温度，单位：摄氏度',
    //    rinsing_duration INT COMMENT '漂洗时长，单位：秒',
    //    rinsing_temperature DECIMAL(5, 2) COMMENT '漂洗温度，单位：摄氏度',
    //    drying_duration INT COMMENT '烘干时长，单位：秒',
    //    drying_temperature DECIMAL(5, 2) COMMENT '烘干温度，单位：摄氏度',
    //    qr_code_scan_time DATETIME COMMENT '二维码扫码时间',不能为空
    //    plc_data_return_time DATETIME COMMENT 'PLC数据回传时间'
    //    ) COMMENT '清洗数据表';

    @TableId // 主键
    private Integer id;

    // 字段映射，字段名与表中的列名一致时，可以省略 @TableField
    // 条码
    private String qrCode;
    //清洗
    private Integer cleaningDuration;    // 时长（单位：秒）
    private Double cleaningTemperature;  // 温度（单位：℃）
    //漂洗
    private Integer rinsingDuration;     // 时长（单位：秒）
    private Double rinsingTemperature;   // 温度（单位：℃）
    //烘干
    private Integer dryingDuration;      // 时长（单位：秒）
    private Double dryingTemperature;    // 温度（单位：℃）
    // 条码扫码时间
    private LocalDateTime qrCodeScanTime;
    // PLC数据回传时间
    private LocalDateTime plcDataReturnTime;

    // 获取格式化后的二维码扫码时间
    public String getFormattedQrCodeScanTime() {
        return qrCodeScanTime != null ? qrCodeScanTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) : "";
    }

    // 获取格式化后的PLC回传时间
    public String getFormattedPlcDataReturnTime() {
        return plcDataReturnTime != null ? plcDataReturnTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) : "";
    }

}



